소프트웨어 개발의 큰 질문들에 대한 겸손한 생각
작성일 : 2025.01.03
사이트 원본) https://www.seangoedecke.com/confidence/
안녕하세요. 오늘은 소프트웨어 개발에서 우리가 자주 마주치는 '큰 질문들'에 대해 이야기해보려 합니다.
우리는 정말 답을 알고 있을까?
마이크로서비스가 모놀리스보다 좋을까요? 팀이 기술적 방향을 직접 결정해야 할까요, 아니면 외부 아키텍트의 지시를 따르는 게 나을까요? 장기적이고 복잡한 프로젝트를 동적 타입 언어로 작성하는 게 좋을까요? 인터넷에서 10초만 둘러봐도 이런 주제들에 대해 마치 답이 명확한 것처럼 논쟁하는 많은 엔지니어들을 볼 수 있습니 다.
하지만 기술 업계에서 일하는 시간이 길어질수록, 저는 이런 큰 질문들에 대해 점점 더 확신이 없어집니다. 처음에 끔찍한 아이디어라고 생각했던 것들이 잘 작동하는 것도 보았고, 그 반대의 경우도 보았기 때문입니다.
경험만으로는 부족한 이유
왜 우리는 이런 질문들에 대한 확실한 답을 알 수 없을까요? 제가 생각하는 핵심적인 이유는 다음과 같습니다:
-
소프트웨어 개발의 기본적인 환경이 너무나 빠르게 변화하기 때문에, 이런 질문들에 대해서는 최근 20년 정도의 경험만이 의미가 있습니다.
-
20년이라는 시간은 이런 큰 질문들에 답하기에 충분하지 않습니다. 폭넓은 경험과 깊이 있는 통찰력이 모두 필요한데, 20년 안에 이 둘을 모두 얻기는 어렵기 때문입니다.
제 경험상 한 회사에서 어떤 결정의 장기적인 결과를 보려면 최소 3-5년이 필요합니다. 이는 20년 동안 최대 4개 정도의 다른 관점만을 얻을 수 있다는 의미입니다. 예를 들어, 한 직장에서는 실패한 모놀리스-마이크로서비스 전환을, 다른 직장에서는 성공적인 전환을 볼 수 있겠죠. 하지만 4개의 데이터 포인트로는 충분하지 않습니다.